Numerous computer software programs have been developed to provide computer control of data acquisition systems designed to automate every step in a particular process. An example of such an automated process would be a production sorting system, where products are tested under computer control to see if the products are within predetermined limits for certain parameters and, if not, to reject them. Such a computerized production sorting system tends to be expensive, bulky, and of limited utility outside of the narrow use for which it was originally designed.
There has also been a trend to develop data acquisition accessories for use with desktop computers. Many of these accessories comprise plug-in circuit cards which are connected to the personal computer's central processor unit (CPU) and are dependent upon the PC as a power source therefor. Specialized software programs must be written to instruct the circuit card to take a particular measurement and to return the data to the CPU such that the reading can either be saved on a disc storage unit or displayed on a video monitor. While these data acquisition accessories reduce the tedium associated with the reading and recording of measured values and decrease the possibility of errors in such reading and recording, they still have at least one major drawback--that of requiring specialized knowledge of the particular data acquisition system and the ability to program the CPU and the data acquisition circuit card in order to perform the desired functions.
If the peripheral data acquisition, monitor, and control system is even moderately sophisticated, a service technician, typically one who has significant experience in both computer programming and electronic control, must install the system and troubleshoot it. A further difficulty is often encountered in that existing software application programs for performing data reduction and analysis, based on the keyboard entry of data, must be modified, or even rewritten, in order to accept input from the data acquisition circuit card. Once such a system is configured and programmed by the service technician, it usually becomes very difficult or impossible for the average unskilled user to change anything in the system configuration, to test the correct operation of particular control devices in the system, or to even obtain a general understanding of the overall system operation.
For example, in the case of a security system having window and door sensors in a number of different buildings located across an office complex, a security guard, having no programming or electronics background, would typically be responsible for operating the system. In order to allow an employee into one of the doors at one of the buildings, the security guard usually has to disable either the entire system, or at least that portion of the system corresponding to that building, instead of being able to disable only that particular sensor at the door being used. Even if the security system was sophisticated enough to provide this capability, the security guard would only have a vague recollection of which door sensor in which building is being disabled, instead of being presented with a precise visual image on a display monitor of the location of that particular door sensor with respect to the physical layout of the building and/or the entire office complex. Moreover, if that particular door sensor was faulty, the security guard typically would not be provided with the capability to change the system configuration to render that door sensor inoperative and test the remaining sensors in the system once the system configuration has been changed.
Similarly, using aforementioned the example of a computerized production sorting system in a factory, it is often desirable to completely automate each step in the manufacturing process and provide data acquisition capabilities to test the manufactured product using a personal computer. In the past, this has typically required a dedicated PC to run the system using customized software specifically developed for that particular manufacturing process. If even a single one of the manufacturing steps is changed to accommodate a new product, the entire system typically must be shut down temporarily to reconfigure the system by reprogramming the software. As will be appreciated by those skilled in the art, this procedure is excessively time consuming and very costly. Furthermore, in order to perform testing by automatic data acquisition for this new product, the necessary modification of the test fixture, the system configuration, and the data acquisition application software is quite often a tremendous undertaking. It may even prove to be more cost effective for certain small jobs to have a human operator take the data acquisition measurements and manually type them in on a keyboard, rather than shutting down the system and waiting for the service technician to reconfigure it.
In addition to monitoring and controlling a security system or a production sorting system, wherein standard electrical sensors and controls would be hard-wired, a user may wish to monitor and control other types of electrical devices using their existing communications interface. A primary example of such an existing communications interface would be the well-known power line carrier transmission system used in home automation systems or "smart-home" applications. A great majority of these systems use the "X-10" standard code format manufactured by X-10 (USA) Inc., Northvale, N.J. ("X-10" is a registered trademark of X-10 (USA) Inc.) A variety of lamp modules, appliance modules, various power-line interface modules, and controller modules utilize this code format to couple X-10 compatible signals onto the AC power line through standard AC outlets. In this manner, a complete home automation system can be designed without having to hard-wire the centrally-located master control device to the remotely-located controlled devices. However, the presently-available computer interfaces and/or programmable controllers for AC power-line transmission systems are somewhat limited, particularly when it comes to monitoring the status of a particular controlled device in real time. In other words, most X-10 controllers tell the X-10 modules what to do--and they cannot tell what was done.
A need, therefore, exists for a peripheral data acquisition, monitor, and adaptive control system which addresses these deficiencies in the prior art.